#include<bits/stdc++.h> 
using namespace std;
//  任务很简单，插入一系列不重复的正整数到一个哈希表，然后输出这些数据的位置。哈希函数定
//	义为H=key%TSize，其中TSize是哈希表的最大尺寸。平方探测法用于解决插不进去的问题。 
//	哈希表尺寸最好是一个素数，所以需要设置成不小于给定尺寸的最近的素数。
//1.第一行包括两个正整数MSize≤10000，以及N≤MSize，分别表示用户设置的表格大小，以及需要
//	输入的大小。然后跟着N个唯一的正整数。
//2.对于每个数字输出它的位置，如果插不进去就输出- 
//3.素数，哈希
int A[10000];
bool P[10000];
bool isprime(int n){
	if(n<=1) return false;
	if(n!=2 && n%2==0) return false;
	int l = int(sqrt(n))+1;
	for(int i = 3;i<l;i+=2){
		if(n%i==0) return false;
	}
	return true;
}
int getprime(int n){
	if(n%2==0) ++n;
	for(int i = n;;i++){
		if(isprime(i)) return i;
	}
}
int main(){
	int MSize, N;
	cin>>MSize>>N;
	for(int i = 0;i<N;i++){
		cin>>A[i];
	}
	if(!isprime(MSize)) MSize = getprime(MSize);
	memset(P, false, 10000);
	for(int i = 0;i<N;i++){
		int p; 
		int j;
		for(j = 0;j<MSize;j++){
			p = (A[i] + j * j) % MSize;	//平方探测法 
			if(!P[p]){
				cout<<p;
				P[p] = true;
				break;
			}	
		}
		if(j == MSize) cout<<'-';
		if(i==N-1) cout<<endl;
		else cout<<" ";
	}
	return 0;
}